package auth

import (
	"context"
	"errors"
	"fmt"
	"gitee.com/DonHz/basic-go/webook/internal/service/sms"
	"github.com/golang-jwt/jwt/v5"
)

type TokenAuthSMSSerivce struct{
	svc sms.Service
	key string
}

// biz是线下申请代表业务方的token
func (s TokenAuthSMSSerivce) Send(ctx context.Context, biz string,
	args []string, numbers ...string) error {
	var tc TokenClaims
	// 权限校验
	// 如果能解析成功，就是对应的业务方
	token, err:=jwt.ParseWithClaims(biz, &tc, func(token *jwt.Token) (interface{}, error){
		return s.key, nil
	})
	if err!=nil {
		return err
	}
	if !token.Valid {
		return errors.New("token 不合法")
	}
	fmt.Println("token: ", token)
	return s.svc.Send(ctx, tc.Tpl, args, numbers...)
}

type TokenClaims struct {
	jwt.RegisteredClaims
	Tpl string
}